#define _CRT_SECURE_NO_WARNINGS 1
//#include <stdio.h>
//
//int main()
//{
//    float arr[5][5] = { 0 };
//    int i, j;
//    for (i = 0; i < 5; i++)
//    {
//        for (j = 0; j < 5; j++)
//        {
//            scanf("%f", &arr[i][j]);
//        }
//    }
//    float sum[5] = { 0 };
//    for (i = 0; i < 5; i++)
//    {
//        sum[i] = 0;
//        for (j = 0; j < 5; j++)
//        {
//            sum[i] += arr[i][j];
//            printf("%f ", arr[i][j]);
//        }
//        printf("%f\n", sum[i]);
//    }
//    return 0;
//}
//#include <stdio.h>
//
//int main()
//{
//    int n, m;
//    scanf("%d %d", &n, &m);
//    int arr[5][5] = { 0 };
//    int i, j;
//    for (i = 0; i < n; i++)
//    {
//        for (j = 0; j < m; j++)
//        {
//            scanf("%d ", &arr[i][j]);
//        }
//    }
//    int x, y;
//    scanf("%d %d", &x, &y);
//    printf("%d", arr[x - 1][y - 1]);
//    return 0;
//}
//#include <stdio.h>
//
//int main()
//{
//    int n, m;
//    int arr[10][10] = { 0 };
//    scanf("%d %d", &n, &m);
//    int i, j;
//    for (i = 0; i < n; i++)
//    {
//        for (j = 0; j < m; j++)
//        {
//            scanf("%d ", &arr[i][j]);
//        }
//    }
//    int max = arr[0][0];
//    int x = 0;
//    int y = 0;
//    for (i = 0; i < n; i++)
//    {
//        for (j = 0; j < m; j++)
//        {
//            if (arr[i][j] >= max)
//            {
//                max = arr[i][j];
//                x = i + 1;
//                y = j + 1;
//            }
//        }
//    }
//    printf("%d %d", x, y);
//    return 0;
//}
//#include <stdio.h>
//
//int main()
//{
//    int n, m;
//    scanf("%d %d", &n, &m);
//    int i, j;
//    int arr[10][10] = { 0 };
//    for (i = 0; i < n; i++)
//    {
//        for (j = 0; j < m; j++)
//        {
//            scanf("%d ", &arr[i][j]);
//        }
//    }
//    int sum = 0;
//    for (i = 0; i < n; i++)
//    {
//        for (j = 0; j < m; j++)
//        {
//            if (arr[i][j] > 0)
//            {
//                sum += arr[i][j];
//            }
//        }
//    }
//    printf("%d", sum);
//    return 0;
//}
//#include <stdio.h>
//
//int main()
//{
//    int m;
//    int n;
//    scanf("%d %d", &m, &n);
//    int arr1[100][100] = { 0 };
//    int arr2[100][100] = { 0 };
//    int i, j;
//    int count = 0;
//    for (i = 0; i < m; i++)
//    {
//        for (j = 0; j < n; j++)
//        {
//            scanf("%d", &arr1[i][j]);
//        }
//    }
//    for (i = 0; i < m; i++)
//    {
//        for (j = 0; j < n; j++)
//        {
//            scanf("%d", &arr2[i][j]);
//        }
//    }
//    for (i = 0; i < m; i++)
//    {
//        for (j = 0; j < n; j++)
//        {
//            if (arr1[i][j] == arr2[i][j])
//            {
//                count++;
//            }
//        }
//    }
//    printf("%.2f", 100.0 * count / (m * n));
//    return 0;
//}
//#include <stdio.h>
//int add(int n) {
//    if (n > 1)
//    {
//        return n - 1 + add(n - 1);
//    }
//    else
//    {
//        return 0;
//    }
//}
//int main() {
//    int n = 0;
//    scanf("%d", &n);
//    int arr[10][10] = { 0 };
//    int i, j;
//    for (i = 0; i < n; i++)
//    {
//        for (j = 0; j < n; j++)
//        {
//            scanf("%d", &arr[i][j]);
//        }
//    }
//    int count = 0;
//    for (i = 0; i < n; i++)
//    {
//        for (j = 0; j < i; j++)
//        {
//            if (arr[i][j] == 0)
//            {
//                count++;
//            }
//        }
//    }
//    if (count == add(n))
//    {
//        printf("YES\n");
//    }
//    else
//    {
//        printf("NO\n");
//    }
//    return 0;
//}
//#include <stdio.h>
//
//int main()
//{
//    int n, m;
//    scanf("%d %d", &n, &m);
//    int arr1[100] = { 0 };
//    int i, j, k;
//    for (k = 0; k < m * n; k++)
//    {
//        scanf("%d ", &arr1[k]);
//    }
//    int arr2[10][10] = { 0 };
//    for (i = 0, k = 0; i < n; i++)
//    {
//        for (j = 0; j < m; j++)
//        {
//            arr2[i][j] = arr1[k];
//            k++;
//        }
//    }
//    for (i = 0; i < n; i++)
//    {
//        for (j = 0; j < m; j++)
//        {
//            printf("%d ", arr2[i][j]);
//        }
//        printf("\n");
//    }
//    return 0;
//}
#include <stdio.h>

int main()
{
    int n, m;
    scanf("%d %d", &m, &n);
    int arr1[10][10] = { 0 };
    int arr2[10][10] = { 0 };
    int i, j;
    for (i = 0; i < m; i++)
    {
        for (j = 0; j < n; j++)
        {
            scanf("%d", &arr1[i][j]);
        }
    }
    for (i = 0; i < n; i++)
    {
        for (j = 0; j < m; j++)
        {
            arr2[i][j] = arr1[j][i];
        }
    }
    for (i = 0; i < n; i++)
    {
        for (j = 0; j < m; j++)
        {
            printf("%d ", arr2[i][j]);
        }
        printf("\n");
    }
    return 0;
}